package com.sc.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 账单表实体类
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("pay_bill") // 指定数据库表名
public class PayBill {
    /**
     * 自增ID
     */
    @TableId(type = IdType.AUTO) // 主键，自增
    private Long id;

    /**
     * 账单编号
     */
    @TableField("bill_number") // 数据库字段映射
    private String billNumber;

    /**
     * 账单名称
     */
    @TableField("bill_name")
    private String billName;

    /**
     * 房间号
     */
    @TableField("room_number")
    private String roomNumber;

    /**
     * 住户名称
     */
    @TableField("household_name")
    private String householdName;

    /**
     * 收费类型
     */
    @TableField("item")
    private String item;

    /**
     * 费用单价
     */
    @TableField("unit_price")
    private BigDecimal unitPrice;

    /**
     * 计算公式
     */
    @TableField("formula")
    private String formula;

    /**
     * 计量单位
     */
    @TableField("unit")
    private String unit;

    /**
     * 计算精度单位（如1.0表示元，0.1表示角，0.01表示分）
     */
    @TableField("calculation_precision")
    private BigDecimal calculationPrecision;

    /**
     * 滞纳金比例
     */
    @TableField("late_fee_rate")
    private BigDecimal lateFeeRate;

    /**
     * 收费范围
     */
    @TableField("scope")
    private String scope;

    /**
     * 总价
     */
    @TableField("total_amount")
    private BigDecimal totalAmount;

    /**
     * 开始日期
     */
    @TableField("start_date")
    private Date startDate;

    /**
     * 结束日期
     */
    @TableField("end_date")
    private Date endDate;

    /**
     * 备注
     */
    @TableField("remark")
    private String remark;

    /**
     * 表号
     */
    @TableField("meter")
    private String meter;

    /**
     * 走字
     */
    @TableField("`usage`")
    private BigDecimal usage;

    /**
     * 状态（0：已缴费，1：待缴费）
     */
    @TableField("status")
    private Integer status;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 删除标志（0：未删除，1：已删除）
     */
    @TableField("del_flag")
    private Integer delFlag;
}
